package com.h3c.nem.dto.beisen;

import lombok.Data;

import java.util.List;

@Data
public class BeiSenInfoDTO {
    private String ApplicantId;
    private String CadidateId;
    private String ElinkUrl;
    private List<BeiSenApplyJobSummaries> ApplyJobSummaries;
    private List<BeiSenTestResults> TestResults;
    private List<BeiSenInterviewSummaries> InterviewSummaries;
    private BeiSenProfile Profile;
    private BeiSenEducationExperience EducationExperience;
    private BeiSenWorkExperience WorkExperience;
    private BeiSenLanguageAbility LanguageAbility;
    private BeiSenCertificate Certificate;
    private BeiSenProjectExperience ProjectExperience;
    private List<BeiSenOperators> Operators;
    private BeiSenFamilyList FamilyList;
    private BeiSenOtherInfo OtherInfo;
    private List<BeiSenInterviewInfoSummaries> InterviewInfoSummaries;
    private List<BeiSenAttachments> Attachments;
    private List<BeiSenTestDetailReports> TestDetailReports;
    private BeiSenPracticeExperience PracticeExperience;
    private BeiSenSchoolPractice SchoolPractice;
    private BeiSenTain Tain;
    private BeiSenObjective Objective;
    private BeiSenAwardsWons AwardsWons;
    private BeiSenSkills Skills;
    private BeiSenTeamManager TeamManager;
    private BeiSenPublished Published;
    private BeiSenSchoolOffice SchoolOffice;

    @Data
    public static class BeiSenTeamManager
    {
        private String Description;
        private List<BeiSenItems> Items;

    }
    @Data
    public static class BeiSenRecuitCategory {
        private String Id;
        private String Code;
        private String Name;
    }
    @Data
    public static class BeiSenOrganization {
        private String Id;
        private String Code;
        private String Name;
        private String level;
        private String PatentDepartName;
        private String PatentDepartCode;
        private String state;
    }
    @Data
    public static class BeiSenCustomFileds {
    }
    @Data
    public static class BeiSenJobCustomFields {
    }
    @Data
    public static class BeiSenInitApplySource {
        private String Value;
        private String ExtendValue;
    }
    @Data
    public static class BeiSenR_BelongSource {
        private String Value;
        private String ExtendValue;
    }
    @Data
    public static class BeiSenLastApplySource {
        private String Value;
        private String ExtendValue;
    }
    @Data
    public static class BeiSenInitApplyMedium {
        private String Value;
        private String ExtendValue;
    }
    @Data
    public static class BeiSenLastApplyMedium {
        private String Value;
        private String ExtendValue;
    }
    @Data
    public static class BeiSenPhaseInfo {
        private String Id;
        private String Code;
        private String Name;
    }
    @Data
    public static class BeiSenStatusInfo {
        private String Id;
        private String Code;
        private String Name;
    }
    @Data
    public static class BeiSenApplyInfo {
        private BeiSenInitApplySource InitApplySource;
        private BeiSenR_BelongSource R_BelongSource;
        private String R_BelongSourceName;
        private String InitApplyKindName;
        private BeiSenLastApplySource LastApplySource;
        private String LastApplyKindName;
        private String InitApplyDate;
        private String LastApplyDate;
        private String PhaseChangeDate;
        private String StateChangeDate;
        private BeiSenInitApplyMedium InitApplyMedium;
        private BeiSenLastApplyMedium LastApplyMedium;
        private String ActiveOfferState;
        private String ActiveOfferApplyState;
        private BeiSenPhaseInfo PhaseInfo;
        private BeiSenRecommender Recommender;
        private BeiSenStatusInfo StatusInfo;
        private String ElinkUrl;
        private String ResumeDownloadUrl;
        private List<BeiSenApplyDocuments> ApplyDocuments;
        private List<BeiSenCustomFileds> CustomFileds;
    }
    @Data
    public static class BeiSenRecommender {
        private String Mobile;
        private String Name;
        private String Email;
        private String JobNumber;
    }
    @Data
    public static class BeiSenApplyDocuments {

        private String AttachmentName;
        private String AttachmentUrl;
        private String AttachmentDownloadUrl;
        private String AttachmentType;
        private String ApplyDocType;
        private String ChannelName;
        private String CreateDate;

    }
    @Data
    public static class BeiSenParentTree {
        private String Id;
        private String Name;
        private BeiSenParentTree ParentTree;

    }
    @Data
    public static class BeiSenApplyJobSummaries {
        private String JobId;
        private String JobCode;
        private String JobTitle;
        private BeiSenRecuitCategory RecuitCategory;
        private BeiSenOrganization Organization;
        private String SyncId;
        private BeiSenCustomFileds CustomFileds;
        private List<BeiSenJobCustomFields> JobCustomFields;
        private String WorkLocation;
        private String DutyUserEmail;
        private String DutyUserName;
        private String DutyUserMobile;
        private BeiSenApplyInfo ApplyInfo;
        private String BusiUserEmail;
        private String ShareUserEmails;
        private BeiSenParentTree DemandSectorParentTreeNodes;
    }
    @Data
    public static class BeiSenTestResults {
    }
    @Data
    public static class BeiSenInterviewSummaries {
    }
    @Data
    public static class BeiSenItems {
        private String PropertyName;
        private String PropertyShortName;
        private String Code;
        private String Value;
    }
    @Data
    public static class BeiSenProfile {
        private List<BeiSenItems> Items;
    }
    @Data
    public static class BeiSenEducationExperience {
        private String Description;
        private List<EducationExperienceItems> Items;
    }
    @Data
    public static class BeiSenWorkExperience {
        private String Description;
        private List<WorkExperienceItems> Items;
    }

    @Data
    public static class BeiSenLanguageAbility {
        private String Description;
        private List<BeiSenItems> Items;
    }

    @Data
    public static class BeiSenCertificate {
        private String Description;
        private List<BeiSenItems> Items;
    }

    @Data
    public static class BeiSenProjectExperience {
        private String Description;
        private List<BeiSenItems> Items;
    }
    @Data
    public static class BeiSenOperators {
    }
    @Data
    public static class BeiSenFamilyList {
        private String Description;
        private List<FamilyItems> Items;


    }
    @Data
    public static class BeiSenOtherInfo {
        private String Description;
        private List<BeiSenItems> Items;
    }
    @Data
    public static class BeiSenLocation {
        private String Value;
        private String ExtendValue;
    }
    @Data
    public static class BeiSenOfficers {
        private String Mobile;
        private String Name;
        private String Email;
        private String JobNumber;
    }
    @Data
    public static class BeiSenInterviewInfoSummaries {
        private String InterviewId;
        private String InterviewTime;
        private String JobId;
        private String InterviewTitle;
        private BeiSenLocation Location;
        private List<BeiSenOfficers> Officers;
        private String InterviewInfoTypeName;
    }
    @Data
    public static class BeiSenAttachments {
    }
    @Data
    public static class BeiSenTestDetailReports {
    }
    @Data
    public static class BeiSenPracticeExperience {
        private String Description;
        private List<BeiSenItems> Items;
    }
    @Data
    public static class BeiSenSchoolPractice {
        private String Description;
        private List<BeiSenItems> Items;
    }
    @Data
    public static class BeiSenTain {
        private String Description;
        private List<BeiSenItems> Items;
    }
    @Data
    public static class BeiSenPresentAnnualSalary {
        private String Value;
        private String ExtendValue;

    }
    @Data
    public static class BeiSenEngagedIndustry {

        private String Value;
        private String ExtendValue;

    }
    @Data
    public static class BeiSenCurrJobCategory {
        private String Value;
        private String ExtendValue;

    }
    @Data
    public static class BeiSenCurrWorkCity {
        private String Value;
        private String ExtendValue;

    }
    @Data
    public static class BeiSenCurrSalary {
        private String Value;
        private String ExtendValue;
    }
    @Data
    public static class BeiSenExpectIndustry {
        private String Value;
        private String ExtendValue;
    }
    @Data
    public static class BeiSenExpectJobCategory {
        private String Value;
        private String ExtendValue;
    }
    @Data
    public static class BeiSenExpectWorkCity {
        private String Value;
        private String ExtendValue;
    }
    @Data
    public static class BeiSenExpectSalary {
        private String Value;
        private String ExtendValue;
    }
    @Data
    public static class BeiSenEntrantDate {
        private String Value;
        private String ExtendValue;
    }
    @Data
    public static class BeiSenWorkState {
        private String Value;
        private String ExtendValue;
    }

    @Data
    public static class BeiSenExpectWorkKind {
        private String Value;
        private String ExtendValue;
    }
    @Data
    public static class BeiSenObjective {
        private String Description;
        private BeiSenPresentAnnualSalary PresentAnnualSalary;
        private String ExpectAnnualSalary;
        private BeiSenEngagedIndustry EngagedIndustry;
        private BeiSenCurrJobCategory CurrJobCategory;
        private BeiSenCurrWorkCity CurrWorkCity;
        private BeiSenCurrSalary CurrSalary;
        private BeiSenExpectIndustry ExpectIndustry;
        private BeiSenExpectJobCategory ExpectJobCategory;
        private BeiSenExpectWorkCity ExpectWorkCity;
        private BeiSenExpectSalary ExpectSalary;
        private BeiSenEntrantDate EntrantDate;
        private BeiSenWorkState WorkState;
        private String IsAbroad;
        private BeiSenExpectWorkKind ExpectWorkKind;
        private String ExptectedArrivalTime;
        private List<BeiSenCustomFields> CustomFields;
    }
    @Data
    public static class BeiSenCustomFields {

    }
    @Data
    public static class BeiSenAwardsWons {
        private String Description;
        private List<BeiSenItems> Items;
    }
    @Data
    public static class BeiSenSkills {
        private String Description;
        private List<BeiSenItems> Items;
    }

    @Data
    public static class BeiSenPublished {
        private String Description;
        private List<BeiSenItems> Items;
    }
    @Data
    public static class BeiSenSchoolOffice {
        private String Description;
        private List<BeiSenItems> Items;
    }
    @Data
    public static class EducationExperienceItems {
        private String StartTime;
        private String EndTime;
        private String SchoolName;
        private String MajorName;
        private FormsOfLearning FormsOfLearning;

        // 学历
        private FormsOfLearning EducationLevel;

        // 学位
        private FormsOfLearning Degree;

        private List<BeiSenItems> CustomFields;
    }
    @Data
    public static class FormsOfLearning {
        private String Value;

        private String ExtendValue;
    }
    @Data
    public static class WorkExperienceItems
    {
        private String StartTime;
        private String EndTime;
        private String CompanyName;
        private String Department;
        private String JobTitle;
        /// 离职原因
        private String ReasonOfLeaving;
        /// 证明人姓名
        private String ReferenceName;
        /// 证明人联系方式
        private String ReferenceLinkInfo;
    }
    @Data
    public static class FamilyItems
    {
        private String Name;
        private String Telephone;
        private String Relation;
        private String WorkPlace;
        private String FamilyLocaltion;
    }
}
